<?php

/**
 * Detalles del Paquete
 * @Paquete
 * GenProg Lenguaje de Modelos
 *
 *
 * @author      Carlos Peña <crash.madover@gmail.com>
 * @package     application.model.sis.nomina
 * @copyright   (c) 2013, GenProg
 * @version     v 1.0
 */
class Paquete {
    // -------------------------------------------------------------------------------------

    /**
     * Prefijo de los Campos
     *
     * @access    public
     * @var       string
     */
    public $prefijo = 'PAQ';

    // -------------------------------------------------------------------------------------

    /**
     * Nombre de la Tabla en la Base de Datos
     *
     * @access    public
     * @var       string
     */
    public $tabla = 'K_TPaquete';



    // -------------------------------------------------------------------------------------

    /**
     * Peso
     * 
     * @access public
     * @var array()
     */
    public $peso = array('0' => 'Gramos', '1' => 'Kilogramos');

    // -------------------------------------------------------------------------------------

    /**
     * Campos del Sistema y Base de datos
     *
     * @access    public
     * @var       array()
     */
    public $struc = array(//
        'cmp' => array(//
            'oid' => array('clave' => 'PRIMARY', 'incremento' => '1', 'tipo' => 'INT', 'longitud' => '11', 'comentario' => 'Envia y Recepcion', 'visible' => 'oculto'), //
            'oidFKG' => array('clave' => 'KEY', 'tipo' => 'INT', 'longitud' => '11', 'comentario' => 'Guia', 'visible' => 'oculto',
                'clave_foranea' => array('guia', 'oid')), //
            'oidFKS' => array('clave' => 'KEY', 'tipo' => 'INT', 'longitud' => '11', 'comentario' => 'Guia', 'visible' => 'oculto',
                'clave_foranea' => array('servicio', 'oid')), //a
            'oidFKO' => array('clave' => 'KEY', 'tipo' => 'INT', 'longitud' => '11', 'comentario' => 'Oficina', 'visible' => 'oculto',
                'clave_foranea' => array('oficina', 'oid')), //Oficina
            'num_contrato' => array('tipo' => 'VARCHAR', 'longitud' => '16', 'comentario' => 'Numero del Contrato'), //
            'ciudad' => array('tipo' => 'VARCHAR', 'longitud' => '255', 'comentario' => 'Codigo de Origen'), //
            'parroquia' => array('tipo' => 'DATE', 'comentario' => 'Codigo de Destino'), //
            'tipo_servicio' => array('tipo' => 'VARCHAR', 'longitud' => '16', 'comentario' => 'Numero del Contrato'), //
            'tipo_envase' => array('tipo' => 'VARCHAR', 'longitud' => '16', 'comentario' => 'Numero del Contrato'), //
            'pieza' => array('tipo' => 'INT', 'longitud' => '2', 'comentario' => 'Numero de Piezas'), //
            'peso' => array('tipo' => 'DECIMAL', 'longitud' => '10,2', 'comentario' => 'Peso del Paquete'), //
            'tipo_peso' => array('tipo' => 'VARCHAR', 'longitud' => '16', 'comentario' => 'Tipo de Peso (Gr, Kg.)'), //
            'base' => array('tipo' => 'DECIMAL', 'comentario' => 'Base Imponible', 'longitud' => '10,2'), //
            'iva' => array('tipo' => 'DECIMAL', 'comentario' => 'Impuesto de Valor Agregado', 'longitud' => '10,2'), //
            'fran' => array('tipo' => 'DECIMAL', 'comentario' => 'Franqueo Postal', 'longitud' => '10,2'), //
            'monto' => array('tipo' => 'DECIMAL', 'comentario' => 'Monto total', 'longitud' => '10,2'), //
            'control_presinto' => array('tipo' => 'VARCHAR', 'longitud' => '30', 'comentario' => 'Control del Presinto'), //
            'valor_declarado' => array('tipo' => 'DECIMAL', 'longitud' => '10,2', 'comentario' => 'Valor Declarado'), //
            'fecha' => array('tipo' => 'DATE', 'comentario' => 'Fecha Elaboracion'), //
        ), //
        'join' => array(//
        //'guia' => array('oid' => 'oidFKG', 'relacion' => 'uno-a-uno', 'dtd' => 'Pagos'), //Tiene una persona
        'servicio' => array('oid' => 'oidFKS', 'relacion' => 'uno-a-uno', 'dtd' => 'Servicios'), //Tiene una persona
        
    ));
    // -------------------------------------------------------------------------------------


    public $dtd = 'Paquete';

    // -------------------------------------------------------------------------------------

    function GUI(Orm $orm = null) {
        $servicio = array();
        $servicio[0] = 'Seleccione Tipo de Servicio';
        if (isset($orm)) {
            $rs = $orm->GPQL('Servicio')->Asignar_Columnas('Servicio.oid AS oid,Servicio.nomb AS nomb')->Listar_Todo()->Ejecutar();
            foreach ($rs['rs'] as $sC => $sV) {
                $servicio[$sV->oid] = $sV->nomb;
            }
        }

        $envase = array('0' => 'Seleccione # Envase', '1' => '8', '2' => '8 S.PLUS', '3' => '9', '4' => '11', '5' => '12', '6' => 'Otros');
        

        $frm[1] = array('etiqueta' => 'Indique # de Guia', 'id' => 'guia', 'tipo' => 'numero', 'clase' => 'icon1', 'requerido' => 1, 'onblur' => 'Evaluar_Guia()', 'estilo' => 'width:210px');
        $frm[2] = array('etiqueta' => 'Servicio', 'id' => 'lservicio', 'tipo' => 'combo', 'elementos' => $servicio, 'requerido' => 1, 'estilo' => 'width:300px');
        $frm[3] = array('etiqueta' => 'Tipo de Envase', 'id' => 'envase', 'tipo' => 'combo', 'elementos' => $envase, 'requerido' => 1, 'estilo' => 'width:210px');
        $frm[4] = array('etiqueta' => 'Peso del Paquete', 'id' => 'peso', 'tipo' => 'numero', 'requerido' => 1, 'onblur' => 'Calcular()', 'estilo' => 'width:300px');
        $frm[5] = array('etiqueta' => 'Tipo de Peso', 'id' => 'tipo_peso', 'tipo' => 'combo', 'estilo' => 'width:210px', 'elementos' => $this->peso, 'onblur' => 'Calcular()');
        $frm[6] = array('etiqueta' => 'Fecha del Envio', 'id' => 'fecha', 'tipo' => 'calendario', 'requerido' => 1, 'estilo' => 'width:300px');
        $frm[7] = array('etiqueta' => 'Control Precinto', 'id' => 'control_presinto', 'tipo' => 'texto', 'requerido' => 1);

        $frm[8] = array('etiqueta' => 'Oid_Guia', 'id' => 'guia_oid', 'tipo' => 'numero', 'requerido' => 1, 'oculto' => 1);
        $frm[9] = array('etiqueta' => 'Oid_Paquete', 'id' => 'paquete_oid', 'tipo' => 'numero', 'requerido' => 1, 'oculto' => 1);
        $frm[10] = array('etiqueta' => 'Certificado', 'id' => 'CER_oid', 'tipo' => 'texto', 'oculto' => 1);
        
        $obj['php'] = array('campos' => $frm, 'titulo' => 'Ingreso de Guía de Porte');
        $obj['json'] = json_encode($obj['php']);
        return (object) $obj;
    }

    function Listar() {
        
    }

    function Insertar() {
        //INSERT INTO `K_TServicio` (`SER_oid`,`SER_nomb`)  SELECT id,serv FROM conenvio.servicios; 
    }

}

?>
